package persistence.dao;

import java.sql.ResultSet;
import java.sql.SQLException;

import persistence.db.DataSet;
import persistence.db.DatabaseConnector;
import persistence.model.AbstractModel;
import persistence.model.StatutEnseignant;

public class StatutEnseignantDAO extends AbstractDAO{
	
	private StatutEnseignant statutEnseignant;
	
	/**
	 * Constructeur d'un statut d'enseignement DAO
	 */
	public StatutEnseignantDAO() {
		setTableName("STATUT_ENSEIGNANT");
	}
	
	/**
	 * Constructeur d'un type d'enseignement
	 * @param statutEnseignant statut d'enseignant correspondant
	 */
	public StatutEnseignantDAO(StatutEnseignant statutEnseignant) {
		this();
		this.statutEnseignant = statutEnseignant;
		setId(statutEnseignant.getId());
	}

	public StatutEnseignant getSatutEnseignant() {
		return statutEnseignant;
	}

	public void setSatutEnseignant(StatutEnseignant satutEnseignant) {
		this.statutEnseignant = satutEnseignant;
	}

	public DataSet all() {
		return new DataSet(this);
	}

	public AbstractModel makeModel(ResultSet rset) {
		try {
			setId(rset.getInt("id_Statut_enseignant"));
			return new StatutEnseignant(getId(),
					rset.getString("nomStatut"),
					rset.getFloat("nbHeuresEqTD"));
		} catch (SQLException e) {
			System.out.println("makeModel error");
			e.printStackTrace();
		}
		return null;
	}

	public void save() {
		String query;
		ResultSet result;
		query = "INSERT INTO " + getTableName() + " VALUES ( S_PK_" + getTableName() + ".nextval, " +
		" '" + statutEnseignant.getNomStatutEns() +"', " +
		statutEnseignant.getNombreHeuresEqTd() + ")";
		/* Execute la requete */
		result = DatabaseConnector.getInstance().execute(query);
		setId(this.getId()); /* Mise a jour de l'identifiant */
	}

	public void save(int id) {
		String query;
		ResultSet result;
		query = "UPDATE " + getTableName() +
			" SET nomStatut = '" + statutEnseignant.getNomStatutEns() +
			"', nbHeuresEqTD = " + statutEnseignant.getNombreHeuresEqTd() +
			" WHERE ID_"+ getTableName() + " = "+ id;
		/* Execute la requete */
		System.out.println(query);
		result = DatabaseConnector.getInstance().execute(query);
	}
}
